package com.net.xpay.core.service;


import com.net.xpay.common.domain.User;
import com.net.xpay.common.domain.sync.CommonUserWithdrawRecord;
import com.net.xpay.core.domain.UserWithdrawRecord;
import com.net.xpay.core.model.UserWithdrawModel;

/**
 * @author 86188
 */
public interface UserWithdrawService {


    /**
     * 新增提现
     * @param merchant
     * @param model
     * @return
     */
    UserWithdrawRecord addUserWithdrawRecord(User merchant, UserWithdrawModel model);

    /**
     * 发起转账
     * @param id
     * @return 支付链接
     */
    String transUserWithdrawRecord(Long id);

    /**
     * 跟新转账结果
     * @param record
     * @param transUser
     */
    void updateUserWithdrawResult(CommonUserWithdrawRecord record, User transUser);

    /**
     * 关闭转账 取消转账
     * @param id
     */
    void closeUserWithdraw(Long id, String remark);

    /**
     * 确认线下转账
     */
    void confirmOfflineUserWithdraw(Long id, String remark);
}
